新增家用场景

FFIB 2 年之前
父节点
当前提交
a1226248ce

+ 52 - 0
api/household_views.py

@@ -0,0 +1,52 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+from django_logit import logit
6
+from django.conf import settings
7
+from django_response import response
8
+
9
+from household.models import HouseholdThermometerMeasureLogInfo, HouseholdThermometerEquipmentBindInfo
10
+
11
+@logit
12
+def mp_bind_thermometer(request):
13
+    user_id = request.POST.get('user_id', '')
14
+    macid = request.POST.get('macid', '')
15
+
16
+    HouseholdThermometerEquipmentBindInfo.objects.get_or_create(user_id=user_id, macid=macid)
17
+
18
+    return response()
19
+
20
+
21
+def mp_thermometer_list(request):
22
+    user_id = request.POST.get('user_id', '')
23
+    eqpts = HouseholdThermometerEquipmentBindInfo.objects.filter(user_id=user_id, status=True)
24
+
25
+    eqpts = [eqpt.data for eqpt in eqpts]
26
+
27
+    return response(data={
28
+        eqpts: eqpts
29
+    })
30
+
31
+
32
+def mp_upload_temperature(request):
33
+    user_id = request.POST.get('user_id', '')
34
+    macid = request.POST.get('macid', '')
35
+    temperature = request.POST.get('temperature', '')
36
+
37
+    HouseholdThermometerMeasureLogInfo.objects.create(user_id=user_id, macid=macid, temperature=temperature)
38
+
39
+    return response()
40
+
41
+
42
+def mp_temperature_list(request):
43
+    user_id = request.POST.get('user_id', '')
44
+    macid = request.POST.get('macid', '')
45
+    
46
+    logs = HouseholdThermometerMeasureLogInfo.objects.filter(macid=macid, status=True)
47
+
48
+    logs = [log.data for log in logs]
49
+
50
+    return response(data={
51
+        'logs': logs
52
+    })

+ 8 - 1
api/urls.py

@@ -3,7 +3,7 @@
3 3
 from django.conf.urls import url
4 4
 
5 5
 from api import (admin_views, aep_views, antigen_views, eqpt_views, field_views, mini_views, oauth_views, point_views,
6
-                 screen_views, wx_views, family_member_views)
6
+                 screen_views, wx_views, family_member_views, household_views)
7 7
 
8 8
 
9 9
 urlpatterns = [
@@ -98,3 +98,10 @@ urlpatterns += [
98 98
 urlpatterns += [
99 99
     url(r'^upload/antihelion$', antigen_views.upload_antigen, name='antigen_upload'),
100 100
 ]
101
+
102
+
103
+# Household
104
+urlpatterns += [
105
+    url(r'^mp/household/thermometer/bind$', household_views.mp_bind_thermometer, name='mp_household_bind_thermometer'),
106
+    url(r'^mp/household/temperature/upload$', household_views.mp_upload_temperature, name='mp_household_upload_temperature'),
107
+]

+ 0 - 0
household/__init__.py


+ 15 - 0
household/admin.py

@@ -0,0 +1,15 @@
1
+from django.contrib import admin
2
+
3
+from household.models import HouseholdThermometerMeasureLogInfo, HouseholdThermometerEquipmentBindInfo
4
+
5
+
6
+class HouseholdThermometerEquipmentBindInfoAdmin(admin.ModelAdmin):
7
+    list_display = ('bind_id', 'macid', 'user_id', 'status', 'created_at', 'updated_at')
8
+
9
+
10
+class HouseholdThermometerMeasureLogInfoInfoAdmin(admin.ModelAdmin):
11
+    list_display = ('macid', 'user_id', 'temperature', 'status', 'created_at', 'updated_at')
12
+
13
+
14
+admin.site.register(HouseholdThermometerEquipmentBindInfo, HouseholdThermometerEquipmentBindInfoAdmin)
15
+admin.site.register(HouseholdThermometerMeasureLogInfo, HouseholdThermometerMeasureLogInfoInfoAdmin)

+ 6 - 0
household/apps.py

@@ -0,0 +1,6 @@
1
+from django.apps import AppConfig
2
+
3
+
4
+class HouseholdConfig(AppConfig):
5
+    default_auto_field = 'django.db.models.BigAutoField'
6
+    name = 'household'

+ 47 - 0
household/migrations/0001_initial.py

@@ -0,0 +1,47 @@
1
+# Generated by Django 3.2.6 on 2022-12-12 06:51
2
+
3
+from django.db import migrations, models
4
+import shortuuidfield.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    initial = True
10
+
11
+    dependencies = [
12
+    ]
13
+
14
+    operations = [
15
+        migrations.CreateModel(
16
+            name='HouseholdThermometerEquipmentBindInfo',
17
+            fields=[
18
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19
+                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
20
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
21
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
22
+                ('bind_id', shortuuidfield.fields.ShortUUIDField(blank=True, db_index=True, editable=False, help_text='绑定唯一标识', max_length=22, null=True, unique=True)),
23
+                ('user_id', models.CharField(blank=True, help_text='用户唯一标识', max_length=32, null=True, verbose_name='user_id')),
24
+                ('macid', models.CharField(blank=True, help_text='设备号', max_length=32, null=True, verbose_name='macid')),
25
+            ],
26
+            options={
27
+                'verbose_name': '家用测温设备绑定信息',
28
+                'verbose_name_plural': '家用测温设备绑定信息',
29
+            },
30
+        ),
31
+        migrations.CreateModel(
32
+            name='HouseholdThermometerMeasureLogInfo',
33
+            fields=[
34
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
35
+                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
36
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
37
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
38
+                ('macid', models.CharField(blank=True, help_text='设备号', max_length=32, null=True, verbose_name='macid')),
39
+                ('user_id', models.CharField(blank=True, help_text='用户唯一标识', max_length=32, null=True, verbose_name='user_id')),
40
+                ('temperature', models.FloatField(default=0, help_text='用户体温', verbose_name='temperature')),
41
+            ],
42
+            options={
43
+                'verbose_name': '家用测温记录信息',
44
+                'verbose_name_plural': '家用测温记录信息',
45
+            },
46
+        ),
47
+    ]

+ 0 - 0
household/migrations/__init__.py


+ 56 - 0
household/models.py

@@ -0,0 +1,56 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.db import models
4
+from django.utils.translation import ugettext_lazy as _
5
+from django_models_ext import BaseModelMixin, SexModelMixin
6
+from shortuuidfield import ShortUUIDField
7
+from TimeConvert import TimeConvert as tc
8
+
9
+
10
+class HouseholdThermometerEquipmentBindInfo(BaseModelMixin):
11
+    bind_id = ShortUUIDField(_('bind_id'), max_length=32, blank=True, null=True, help_text='绑定唯一标识', db_index=True, unique=True)
12
+
13
+    user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识')
14
+
15
+    macid = models.CharField(_('macid'), max_length=32, blank=True, null=True, help_text='设备号')
16
+
17
+    class Meta:
18
+        verbose_name = _('家用测温设备绑定信息')
19
+        verbose_name_plural = _('家用测温设备绑定信息')
20
+
21
+    def __unicode__(self):
22
+        return self.pk
23
+
24
+    @property
25
+    def data(self):
26
+        return {
27
+            'bind_id': self.bind_id,
28
+            'user_id': self.user_id,
29
+            'macid': self.macid,
30
+            'created_at': tc.local_string(utc_dt=self.created_at),
31
+        }
32
+
33
+
34
+class HouseholdThermometerMeasureLogInfo(BaseModelMixin):
35
+    macid = models.CharField(_('macid'), max_length=32, blank=True, null=True, help_text='设备号')
36
+
37
+    user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识')
38
+
39
+    temperature = models.FloatField(_('temperature'), default=0, help_text='用户体温')
40
+
41
+
42
+    class Meta:
43
+        verbose_name = _('家用测温记录信息')
44
+        verbose_name_plural = _('家用测温记录信息')
45
+
46
+    def __unicode__(self):
47
+        return self.pk
48
+
49
+    @property
50
+    def data(self):
51
+        return {
52
+            'macid': self.macid,
53
+            'user_id': self.user_id,
54
+            'temperature': self.temperature,
55
+            'created_at': tc.local_string(utc_dt=self.created_at),
56
+        }

+ 3 - 0
household/tests.py

@@ -0,0 +1,3 @@
1
+from django.test import TestCase
2
+
3
+# Create your tests here.

+ 3 - 0
household/views.py

@@ -0,0 +1,3 @@
1
+from django.shortcuts import render
2
+
3
+# Create your views here.

+ 1 - 0
thermometer/settings.py

@@ -58,6 +58,7 @@ INSTALLED_APPS = [
58 58
     'api',
59 59
     'account',
60 60
     'equipment',
61
+    'household',
61 62
 ]
62 63
 
63 64
 MIDDLEWARE = [